package com.merry.spring5.validation;

import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;

/**
 * @author ybzou
 * spring 实现数据校验的第一种方式
 */
public class PhoneValidation implements Validator {

    /**
     * 这个方法表示此校验用在那个类型上。
     * @param aClass
     * @return
     */
    public boolean supports(Class<?> aClass) {
        return Phone.class.equals(aClass);
    }

    /**
     * 具体校验的逻辑
     * @param o
     * @param errors
     */
    public void validate(Object o, Errors errors) {
        //name 不能为空
        ValidationUtils.rejectIfEmpty(errors,"name",
                "name.empty","name 不能为空！！");
        //age 0-200 之间
        Phone phone = (Phone) o;
        int age = phone.getAge();
        if(age>200 || age<0){
            errors.rejectValue("age","age.value.malformed","age 值错误！！");
        }
    }
}
